Digital images are composed of an enormous amount of data. Storage of this type of data on digital media is generally expensive and transmission of digital images requires either a large bandwidth or a long period of time. Many algorithms have been developed to compress image data by removing redundant information from the image. The goal of these algorithms is to reduce the amount of data needed to represent the image while minimizing the amount of image degradation.
One well known compression technique is transform coding. This method involves taking a transformation of the image data to provide a sequence of coefficients which can be encoded using, for example, a non-equal number of bits for each resulting coefficient. In particular, the number of bits employed is based upon the logarithm of the variance for a particular coefficient. At the receiver, the coded coefficient data is employed for reconstructing the coefficient values and performing the inverse of the original transform to obtain an image representative of the original data.
One form of transform coding, block image coding is often used to accommodate localized variations in image characteristics. With block image coding, a digitized image is decomposed into small rectangular regions (or "blocks") which are transform coded and, for example, transmitted through a digital communications channel. At the receiver, the blocks are decoded and re-assembled in order to reconstruct the image. In a typical situation, an image composed of an array of 512.times.512 picture elements (pixels) can be viewed as an array of 64.times.64 blocks, where each block contains 8.times.8 pixels.
Several kinds of transformations are commonly used for this type of coding. Typical transforms include the Fourier transform, cosine transform, Hadamard transform, and Harr transform. These transformations operate on an M.times.N block of image data and produce a M.times.N array of coefficients. These coefficients have the property that they are related to specific spatial frequencies in the original image. Normally, the two dimensional array of coefficients is arranged into a one dimensional array that approximately orders the coefficients from lowest frequency to highest frequency. This one dimensional array is then encoded and transmitted.
Of the possible transformations, the Discrete Cosine Transform (DCT) is the most commonly used. It has been proposed as a standard for lossy multibit image compression by the Joint Photographic Experts Group (JPEG) of the International Standards Organization (ISO). The DCT is popular because it tends to concentrate most of the information in the original image into a smaller group of low-frequency coefficients in the transformed image. These coefficients can then be efficiently encoded to provide the required compression.
The major disadvantage of block image coding is that the image is degraded by the coding process, and the boundaries of the reconstructed blocks can be clearly visible in the resulting image. In particular, this occurs because the quantization noise is generally correlated within blocks but is independent between blocks, yielding mismatches at block boundaries. Because of these blocking artifacts, reconstructed images appear to be composed of "tiles".
Several techniques have been described in the prior art for reducing the block artifacts. Most of these techniques involve modifying the encoder in some way so that when the image is decoded and reconstructed, there are no artifacts. One approach is to overlap the blocks slightly, by one pixel for example, and reconstruct the overlapping regions at the receiver by using the average of the reconstructed pixels from each of the overlapping blocks.
Another approach is described in U.S. Pat. No. 4,754,492. In this technique, the image data in a block is prefiltered with image data in the neighboring blocks, then transformed and encoded. Decompression consists of performing the inverse transform and postfiltering the blocks.
These techniques are useful if the source and destination of the images are both capable of performing the appropriate algorithms. However, in many applications, a user who receives compressed images does not have control over the particular technique used to encode the image. For example, the DCT compression algorithm proposed as a standard by the JPEG committee does not employ any special encoding techniques to remove block artifacts from the decoded images. In this case, some other method must be used to remove the block artifacts.
Another common technique is to use a low-pass filter to blur the block boundaries in the image. This technique has the advantage of not requiring special processing during the compression of the image. Although this technique is very effective in reducing the blocking effects, it blurs high frequency details along the block boundaries with a perceptible loss of sharpness. Another way of looking at that problem is by examining the RMS error in the image. In low-frequency areas, blurring the image tends to reduce the RMS error in the image; however, in high frequency areas, where consecutive pixels have less correlation, blurring the image substantially raises the RMS error.
The object of the present invention is to provide an improved method for removing block artifacts from images that have been compressed by a block transform compression algorithm. It is a further object of this invention to provide the block artifact removal as part of the decoding process only.